At the top level files descriptive of the project: a pom.xml file (and any
properties, maven.xml or build.xml if using Ant). In addition, there are
textual documents meant for the user to be able to read immediately on
receiving the source: README.txt, LICENSE.txt, etc.

There are just two subdirectories of this structure: src and target. The only
other directories that would be expected here are metadata like CVS or .svn,
and any subprojects in a multiproject build (each of which would be laid out
as above).

The target directory is used to house all output of the build.

The src directory contains all of the source material for building the
project, its site and so on. It contains a subdirectory for each type: main
for the main build artifact, test for the unit test code and resources, site
    and so on.

    Within artifact producing source directories (ie. main and test), there is
    one directory for the language java (under which the normal package
    hierarchy exists), and one for resources (the structure which is copied to
    the target classpath given the default resource definition).

    If there are other contributing sources to the artifact build, they would
    be under other subdirectories: for example src/main/antlr would contain
    Antlr grammar definition files.
